package cc.realxyq.demo.bean;

import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.extern.slf4j.Slf4j;

import javax.annotation.PostConstruct;
import javax.annotation.PreDestroy;

/**
 * @author kwhan
 * @date 2022年01月07日 20:30
 */
@Slf4j
@EqualsAndHashCode(callSuper = true)
@Data
public class Red extends Color{

    private String name;

    public Red() {
        log.error("无参构造函数被调用了，实例化了");
    }

    public Red(String name) {
        log.error("有参构造函数被调用了，实例化了");
        this.name = name;
    }

    public void init(){
        setName("我是在初始化阶段被修改了name的值");
        log.error("Red的实例 通过自定义初始化方法 初始化了........");
    }


    @Override
    public void destroy() throws Exception {
        log.error("我是来自于实现了DisposableBean的 destroy 方法的 销毁方法");
    }

    @Override
    public void afterPropertiesSet() throws Exception {
        log.error("我是来实现了InitializingBean接口 ，初始化方法afterPropertiesSet....");
    }

    public void  destroy1(){
        log.error("自定义销毁方法，对象销毁了......");
    }

    @PostConstruct
    public void postConstruct(){
        log.error("我通过@PostConstrut注解，初始化bean");
    }
    @PreDestroy
    public void preDestroy(){
        log.error("我是通过PreDestroy注解 销毁对象的");
    }
}
